1. Field of the Invention
The present invention relates generally to the field of computer network management. More particularly, the invention relates to determining the topology of a network using devices distributed in different locations on the network.
2. Description of the Related Art
Any networked domain will typically have a number of devices responsible for routing the traffic around the network. Typically, the devices are routers or computers that support layer 2 (data link layer of the ISO's (International Standards Organisation's) OSI (Open System Interconnection) standard for networking) and layer 3 (network layer of OSI). In order to survive a failure of any one device or link, a network is typically designed with redundant back-up routes. Some networks can have multiple interconnected back-up routes. Over time, devices can be moved, added, removed or replaced, routes can be moved or altered and device configurations can be changed. As a result, any documentation of the original network design, if it was created, becomes outdated. When problems occur, troubleshooting is made more difficult without accurate information on the network's topology. When new demands are to be applied to the network, it may not be possible to determine how to reconfigure the network without knowledge of the network's existing topology. When performance is to be measured or improved, it is difficult to determine how develop the network without understanding all of the links and which devices are connected to each one.
Some devices are supplied with mechanisms that allow them to determine their connections. These mechanisms might allow someone to determine the connections at each device, compile the information together and, from there, determine the network's design. However, these mechanisms typically require that all of the devices use the same mechanism and do not enable the devices to communicate with each other to compile the information.
PING (Packet Internet Groper) is supported by a large number of different network devices. For those systems that do not support PING, there are many freeware and shareware utilities available for many different platforms that will support PING. PING sends an ICMP (Internet Control Message Protocol) packet to a specified address and waits for a reply. If a reply is received, then a connection to the addressed device is confirmed. However, PING does not determine connections to devices for which it does not know an address nor does PING determine the routing that was used to get to a device.
Traceroute is a utility that is available in many forms to operate on many different devices. UNIX and most Windows operating systems include a Traceroute utility. It is typically used to trace out packet routes through Internet connections. Traceroute traces the route that a packet sent from one device to another takes, shows how many hops the packet takes, and identifies the device at each hop. The identified devices at each hop are typically the routers. Traceroute operates by sending packets with low TTL (time-to-live) fields. When the packet does not reach its destination because the number of hops exceeds the TTL value, the last host that the packet did reach returns the packet and identifies itself. Traceroute sends a series of packets and increments the TTL of each one. Each failed packet is returned with an identification of the next host. By sending the of packets, the identity of the device at each host on the way to the destination can be determined. Traceroute can be used to determine the routers on the way to a particular destination but it does not determine back-up routes, alternative paths nor the topology of the network. It is also dependent on the particular path that a packet takes at the time that the utility is run. Accordingly, the information that can be obtained is very limited.